www formular - vyplnit a odeslat - TWebBrowser

Otázka od: Ales Bolha

19. 9. 2002 7:53

Ahoj,
reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
14.11.2000, kde
popisuje Petr Vones automaticke vlozeni
emailove adresy do prihlasovaciho dialogu konference na web strankach,
za vyuziti komponenty TWebBrowser.
Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
zverejnim.

Diky Ales Bolha



Ahoj,

pokud ti jde o predvyplneni textoveho pole na strance tak to lze
udelat primo
upravou atributu jednotlivych HTML elementu v TWebBrowser.

Priklad, v prihlasovacim formulari do konference najdes:

<TD><input type="text" name="Email"></TD>

V aplikace lze pak pole Email vyplnit takto:

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.delphi.cz/prihlas.asp');
end;

procedure TForm1.FillForm;
var
  Doc: IHTMLDocument2;
  I: Integer;
  Element: OleVariant;
  Elements: IHTMLElementCollection;
begin
  Doc := WebBrowser1.Document as IHTMLDocument2;
  Elements := Doc.all;
  for I := 0 to Elements.length - 1 do
  begin
    Element := Elements.item(I, varEmpty);
    if (Element.tagName = 'INPUT') and (Element.type = 'text') and
      (Element.name = 'Email') then
      Element.value := 'email@aaa.aaa';
  end;
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if pDisp = WebBrowser1.DefaultInterface then
    FillForm;
end;

Petr Vones, amatersky programator

Odpovedá: Petr Slaby

19. 9. 2002 8:46

Ahoj,

myslim, ze mi kdysi fungovalo toto:

     Element := Elements.item(I, varEmpty);
     if (Element.type = 'submit') and (Element.name = [jmeno]) then
       Element.Click;

Petr

Thursday, September 19, 2002, 7:43:32 AM, you wrote:

AB> Ahoj,
AB> reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
AB> 14.11.2000, kde
AB> popisuje Petr Vones automaticke vlozeni
AB> emailove adresy do prihlasovaciho dialogu konference na web strankach,
AB> za vyuziti komponenty TWebBrowser.
AB> Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
AB> Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
AB> jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
AB> TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
AB> zverejnim.

AB> Diky Ales Bolha



AB> Ahoj,

AB> pokud ti jde o predvyplneni textoveho pole na strance tak to lze
AB> udelat primo
AB> upravou atributu jednotlivych HTML elementu v TWebBrowser.

AB> Priklad, v prihlasovacim formulari do konference najdes:

AB> <TD><input type="text" name="Email"></TD>

AB> V aplikace lze pak pole Email vyplnit takto:

AB> procedure TForm1.Button1Click(Sender: TObject);
AB> begin
AB> WebBrowser1.Navigate('http://www.delphi.cz/prihlas.asp');
AB> end;

AB> procedure TForm1.FillForm;
AB> var
AB> Doc: IHTMLDocument2;
AB> I: Integer;
AB> Element: OleVariant;
AB> Elements: IHTMLElementCollection;
AB> begin
AB> Doc := WebBrowser1.Document as IHTMLDocument2;
AB> Elements := Doc.all;
AB> for I := 0 to Elements.length - 1 do
AB> begin
AB> Element := Elements.item(I, varEmpty);
AB> if (Element.tagName = 'INPUT') and (Element.type = 'text') and
AB> (Element.name = 'Email') then
AB> Element.value := 'email@aaa.aaa';
AB> end;
AB> end;

AB> procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
AB> const pDisp: IDispatch; var URL: OleVariant);
AB> begin
AB> if pDisp = WebBrowser1.DefaultInterface then
AB> FillForm;
AB> end;

AB> Petr Vones, amatersky programator